#pragma once

#include <string_view>

/*
From HelloWorld.sol
*/

constexpr static std::string_view helloworldBytecode =
    "608060405234801561001057600080fd5b506110d5806100206000396000f3fe608060405234801561001057600080"
    "fd5b50600436106100ea5760003560e01c806389ea642f1161008c578063e5175c5811610066578063e5175c581461"
    "019f578063e8c16eff146101b2578063f28a3b65146101d2578063fd8f5907146101da57600080fd5b806389ea642f"
    "14610159578063dcdb78bc1461016e578063e3d670d71461017657600080fd5b806362738998116100c85780636273"
    "899814610114578063747586b81461012b5780637fcaf6661461013e578063805e3da01461015157600080fd5b8063"
    "077142e4146100ef57806321cde8c7146100f95780634be422ae1461010c575b600080fd5b6100f76101ed565b005b"
    "6100f76101073660046106b0565b61026a565b6100f761029b565b6000545b6040519081526020015b604051809103"
    "90f35b6100f76101393660046106da565b600055565b6100f761014c366004610709565b6102d9565b6101186102ec"
    "565b6101616102f9565b60405161012291906107ea565b61011861038b565b61011861018436600461081d565b6001"
    "600160a01b031660009081526002602052604090205490565b6101186101ad3660046106da565b610397565b6101ba"
    "610489565b6040516001600160a01b039091168152602001610122565b6100f76104b9565b6100f76101e836600461"
    "0838565b610576565b60006040516101fb906105d5565b604051809103906000f080158015610217573d6000803e3d"
    "6000fd5b5090506000604051610228906105d5565b604051809103906000f080158015610244573d6000803e3d6000"
    "fd5b509050806001600160a01b0316826001600160a01b0316141561026657600080fd5b5050565b6001600160a01b"
    "0382166000908152600260205260408120805483929061029290849061088a565b90915550505050565b7f6270f0e0"
    "872f361f9d11ecd5fab7c94bc564ebe8a9e17a85b2d5cd9423a6e56460005460016040516102cf929190610906565b"
    "60405180910390a1565b80516102669060019060208401906105e1565b6103ed6000908155600080fd5b6060600180"
    "54610308906108cb565b80601f01602080910402602001604051908101604052809291908181526020018280546103"
    "34906108cb565b80156103815780601f1061035657610100808354040283529160200191610381565b820191906000"
    "526020600020905b81548152906001019060200180831161036457829003601f168201915b5050505050905090565b"
    "6103ee60009081558080fd5b6000806040516103a6906105d5565b604051809103906000f0801580156103c2573d60"
    "00803e3d6000fd5b5060405163e5c19b2d60e01b8152600481018590529091506001600160a01b0382169063e5c19b"
    "2d90602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d"
    "6000fd5b50505050806001600160a01b0316636d4ce63c6040518163ffffffff1660e01b8152600401602060405180"
    "830381865afa15801561045e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081"
    "019061048291906109b7565b9392505050565b600060405161049790610665565b604051809103906000f080158015"
    "6104b3573d6000803e3d6000fd5b50905090565b60006040516104c790610672565b604051809103906000f0801580"
    "156104e3573d6000803e3d6000fd5b5060408051600481526024810182526020810180516001600160e01b031663b0"
    "bea72560e01b179052905191925082916000916060916001600160a01b0385169161052d916109d0565b6000604051"
    "80830381855af49150503d8060008114610568576040519150601f19603f3d011682016040523d82523d6000602084"
    "013e61056d565b606091505b50505050505050565b6001600160a01b03831660009081526002602052604081208054"
    "83929061059e9084906109ec565b90915550506001600160a01b038216600090815260026020526040812080548392"
    "906105cb90849061088a565b9091555050505050565b60ca80610a2c83390190565b8280546105ed906108cb565b90"
    "600052602060002090601f01602090048101928261060f5760008555610655565b82601f1061062857805160ff1916"
    "838001178555610655565b82800160010185558215610655579182015b828111156106555782518255916020019190"
    "6001019061063a565b5061066192915061067f565b5090565b61041380610af683390190565b61019780610f098339"
    "0190565b5b808211156106615760008155600101610680565b80356001600160a01b03811681146106ab57600080fd"
    "5b919050565b600080604083850312156106c357600080fd5b6106cc83610694565b94602093909301359350505056"
    "5b6000602082840312156106ec57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd"
    "5b60006020828403121561071b57600080fd5b813567ffffffffffffffff8082111561073357600080fd5b81840191"
    "5084601f83011261074757600080fd5b813581811115610759576107596106f3565b604051601f8201601f19908116"
    "603f01168101908382118183101715610781576107816106f3565b8160405282815287602084870101111561079a57"
    "600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b838110156107d5"
    "5781810151838201526020016107bd565b838111156107e4576000848401525b50505050565b602081526000825180"
    "60208401526108098160408501602087016107ba565b601f01601f19169190910160400192915050565b6000602082"
    "8403121561082f57600080fd5b61048282610694565b60008060006060848603121561084d57600080fd5b61085684"
    "610694565b925061086460208501610694565b9150604084013590509250925092565b634e487b7160e01b60005260"
    "1160045260246000fd5b600080821280156001600160ff1b03849003851316156108ac576108ac610874565b600160"
    "ff1b83900384128116156108c5576108c5610874565b50500190565b600181811c908216806108df57607f82169150"
    "5b6020821081141561090057634e487b7160e01b600052602260045260246000fd5b50919050565b82815260006020"
    "6040818401526000845481600182811c91508083168061092e57607f831692505b85831081141561094c57634e487b"
    "7160e01b85526022600452602485fd5b604088018390526060880181801561096b576001811461097c576109a7565b"
    "60ff198616825287820196506109a7565b60008b81526020902060005b868110156109a15781548482015290850190"
    "8901610988565b83019750505b50949a9950505050505050505050565b6000602082840312156109c957600080fd5b"
    "5051919050565b600082516109e28184602087016107ba565b9190910192915050565b60008083128015600160ff1b"
    "850184121615610a0a57610a0a610874565b6001600160ff1b0384018313811615610a2557610a25610874565b5050"
    "039056fe6080604052348015600f57600080fd5b5060ac8061001e6000396000f3fe6080604052348015600f576000"
    "80fd5b506004361060325760003560e01c80636d4ce63c146037578063e5c19b2d14604c575b600080fd5b60005460"
    "405190815260200160405180910390f35b605c6057366004605e565b600055565b005b600060208284031215606f57"
    "600080fd5b503591905056fea26469706673582212203246a7a0e842e851527c96493b2f2af7cc34b424f47e6fd603"
    "fcf3ff17708e6964736f6c634300080a0033608060405234801561001057600080fd5b5060005b600a8112156100b1"
    "57600060405161002b906100b7565b604051809103906000f080158015610047573d6000803e3d6000fd5b50600160"
    "0160a01b0316600081815260208190526040812084905560018054808201825591527fb10e2d527612073b26eecdfd"
    "717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055506100aa816100c356"
    "5b9050610014565b506100f1565b60ca8061034983390190565b60006001600160ff1b038214156100ea57634e487b"
    "7160e01b600052601160045260246000fd5b5060010190565b610249806101006000396000f3fe6080604052348015"
    "61001057600080fd5b506004361061004c5760003560e01c806310c4e8b014610051578063796a83ec1461006f5780"
    "63c2bc2efc1461009d578063edf26d9b146100c6575b600080fd5b6100596100f1565b604051610066919061017d56"
    "5b60405180910390f35b61008f61007d3660046101ca565b60006020819052908152604090205481565b6040519081"
    "52602001610066565b61008f6100ab3660046101ca565b6001600160a01b0316600090815260208190526040902054"
    "90565b6100d96100d43660046101fa565b610153565b6040516001600160a01b039091168152602001610066565b60"
    "6060018054806020026020016040519081016040528092919081815260200182805480156101495760200282019190"
    "6000526020600020905b81546001600160a01b0316815260019091019060200180831161012b575b50505050509050"
    "90565b6001818154811061016357600080fd5b6000918252602090912001546001600160a01b0316905081565b6020"
    "808252825182820181905260009190848201906040850190845b818110156101be5783516001600160a01b03168352"
    "9284019291840191600101610199565b50909695505050505050565b6000602082840312156101dc57600080fd5b81"
    "356001600160a01b03811681146101f357600080fd5b9392505050565b60006020828403121561020c57600080fd5b"
    "503591905056fea26469706673582212200bd53a35a2b418f624d4073b92220f2efd78b6efaa1df327fcf9aa1c5930"
    "7bbc64736f6c634300080a00336080604052348015600f57600080fd5b5060ac8061001e6000396000f3fe60806040"
    "52348015600f57600080fd5b506004361060325760003560e01c80636d4ce63c146037578063e5c19b2d14604c575b"
    "600080fd5b60005460405190815260200160405180910390f35b605c6057366004605e565b600055565b005b600060"
    "208284031215606f57600080fd5b503591905056fea26469706673582212203246a7a0e842e851527c96493b2f2af7"
    "cc34b424f47e6fd603fcf3ff17708e6964736f6c634300080a0033608060405234801561001057600080fd5b506101"
    "77806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b0"
    "bea72514610030575b600080fd5b61003861003a565b005b614da46000556040805180820190915260038082526268"
    "692160e81b602090920191825261006a9160019161006d565b50565b82805461007990610106565b90600052602060"
    "002090601f01602090048101928261009b57600085556100e1565b82601f106100b457805160ff1916838001178555"
    "6100e1565b828001600101855582156100e1579182015b828111156100e15782518255916020019190600101906100"
    "c6565b506100ed9291506100f1565b5090565b5b808211156100ed57600081556001016100f2565b600181811c9082"
    "168061011a57607f821691505b6020821081141561013b57634e487b7160e01b600052602260045260246000fd5b50"
    "91905056fea2646970667358221220e9141740b756058419edad30ed9f3b98314f47beee1c386ba04f8485ae35d717"
    "64736f6c634300080a0033a26469706673582212200692dc7416f6db8191416414b44b00119f89a987f74b784a6e50"
    "264d2d9bca4d64736f6c634300080a0033";

constexpr static std::string_view transientStorageBytecode =
    "60806040526100337fbad128a9c9f118267291de46fed9cb24d9fbbe19a927cfee43cdc3b8e4eba17161010e60201b"
    "60201c565b5f556100647fe51529ae218841954601d43f697e9bb24b282c1a2ddf95745a7e79ee1b4b7b7d61011760"
    "201b60201c565b6001556100967f5d4010ae4473cd3ede543746d54ec6f990232434c2d4884f06e3cc4ac77168e561"
    "012060201b60201c565b6002556100c87fb734117ebc01eac75f020b05b2620ab71735dfa2175ac8e98f85bd7f529b"
    "b96f61012960201b60201c565b6003556100fa7feb7753d6e9a22bf47d9682cdc6f111b5defde6c206047689bad231"
    "20af3743bd61013260201b60201c565b600455348015610108575f80fd5b5061013b565b5f819050919050565b5f81"
    "9050919050565b5f819050919050565b5f819050919050565b5f819050919050565b610653806101485f395ff3fe60"
    "8060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063a65e939e1161006f578063a65e939e14"
    "610153578063c2b12a7314610183578063d2282dc51461019f578063e30081a0146101bb578063f5b53e17146101d7"
    "578063f8462a0f146101f5576100a7565b80631f903037146100ab5780632d1be94d146100c957806338cc48311461"
    "00e75780636889597914610105578063a53b1c1e14610123575b5f80fd5b6100b3610211565b6040516100c0919061"
    "036a565b60405180910390f35b6100d1610222565b6040516100de919061039d565b60405180910390f35b6100ef61"
    "0233565b6040516100fc91906103f5565b60405180910390f35b61010d610243565b60405161011a9190610426565b"
    "60405180910390f35b61013d60048036038101906101389190610476565b610254565b60405161014a919061039d56"
    "5b60405180910390f35b61016d60048036038101906101689190610476565b610273565b60405161017a91906104b0"
    "565b60405180910390f35b61019d600480360381019061019891906104f3565b61028d565b005b6101b96004803603"
    "8101906101b49190610548565b6102a5565b005b6101d560048036038101906101d0919061059d565b6102bd565b00"
    "5b6101df6102d4565b6040516101ec91906104b0565b60405180910390f35b61020f600480360381019061020a9190"
    "6105f2565b6102e5565b005b5f61021d6002546102fd565b905090565b5f61022e600154610307565b905090565b5f"
    "61023e5f54610311565b905090565b5f61024f60035461031b565b905090565b5f61026a8260045461032590919063"
    "ffffffff16565b60019050919050565b5f61027d82610254565b506102866102d4565b9050919050565b6102a28160"
    "025461032c90919063ffffffff16565b50565b6102ba8160035461033390919063ffffffff16565b50565b6102d181"
    "5f5461033a90919063ffffffff16565b50565b5f6102e0600454610341565b905090565b6102fa8160015461034b90"
    "919063ffffffff16565b50565b5f815c9050919050565b5f815c9050919050565b5f815c9050919050565b5f815c90"
    "50919050565b80825d5050565b80825d5050565b80825d5050565b80825d5050565b5f815c9050919050565b80825d"
    "5050565b5f819050919050565b61036481610352565b82525050565b5f60208201905061037d5f83018461035b565b"
    "92915050565b5f8115159050919050565b61039781610383565b82525050565b5f6020820190506103b05f83018461"
    "038e565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103df8261"
    "03b6565b9050919050565b6103ef816103d5565b82525050565b5f6020820190506104085f8301846103e6565b9291"
    "5050565b5f819050919050565b6104208161040e565b82525050565b5f6020820190506104395f830184610417565b"
    "92915050565b5f80fd5b5f819050919050565b61045581610443565b811461045f575f80fd5b50565b5f8135905061"
    "04708161044c565b92915050565b5f6020828403121561048b5761048a61043f565b5b5f6104988482850161046256"
    "5b91505092915050565b6104aa81610443565b82525050565b5f6020820190506104c35f8301846104a1565b929150"
    "50565b6104d281610352565b81146104dc575f80fd5b50565b5f813590506104ed816104c9565b92915050565b5f60"
    "2082840312156105085761050761043f565b5b5f610515848285016104df565b91505092915050565b610527816104"
    "0e565b8114610531575f80fd5b50565b5f813590506105428161051e565b92915050565b5f6020828403121561055d"
    "5761055c61043f565b5b5f61056a84828501610534565b91505092915050565b61057c816103d5565b811461058657"
    "5f80fd5b50565b5f8135905061059781610573565b92915050565b5f602082840312156105b2576105b161043f565b"
    "5b5f6105bf84828501610589565b91505092915050565b6105d181610383565b81146105db575f80fd5b50565b5f81"
    "3590506105ec816105c8565b92915050565b5f602082840312156106075761060661043f565b5b5f61061484828501"
    "6105de565b9150509291505056fea2646970667358221220d88517d2dffabcb325b3b34f932814eb3c9b3a6167aa58"
    "814fcc57b116d57fbb64736f6c63430008190033";

constexpr static std::string_view transientStorageContractTestByteCode =
    "6080604052348015600e575f80fd5b506108748061001c5f395ff3fe608060405234801561000f575f80fd5b506004"
    "3610610029575f3560e01c8063fa3e317e1461002d575b5f80fd5b6100476004803603810190610042919061019456"
    "5b61005d565b60405161005491906101d9565b60405180910390f35b5f808260405161006c90610150565b61007691"
    "90610201565b604051809103905ff08015801561008f573d5f803e3d5ffd5b5090505f8173ffffffffffffffffffff"
    "ffffffffffffffffffff16636428f3dc6040518163ffffffff1660e01b81526004016020604051808303815f875af1"
    "1580156100dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610101919061"
    "022e565b9050838114610145576040517f08c379a00000000000000000000000000000000000000000000000000000"
    "0000815260040161013c906102d9565b60405180910390fd5b600192505050919050565b610547806102f883390190"
    "565b5f80fd5b5f819050919050565b61017381610161565b811461017d575f80fd5b50565b5f8135905061018e8161"
    "016a565b92915050565b5f602082840312156101a9576101a861015d565b5b5f6101b684828501610180565b915050"
    "92915050565b5f8115159050919050565b6101d3816101bf565b82525050565b5f6020820190506101ec5f83018461"
    "01ca565b92915050565b6101fb81610161565b82525050565b5f6020820190506102145f8301846101f2565b929150"
    "50565b5f815190506102288161016a565b92915050565b5f602082840312156102435761024261015d565b5b5f6102"
    "508482850161021a565b91505092915050565b5f82825260208201905092915050565b7f73746f72652076616c7565"
    "206e6f7420657175616c20746c6f616420726573755f8201527f6c7400000000000000000000000000000000000000"
    "0000000000000000000000602082015250565b5f6102c3602283610259565b91506102ce82610269565b6040820190"
    "50919050565b5f6020820190508181035f8301526102f0816102b7565b905091905056fe6080604052348015600e57"
    "5f80fd5b506040516105473803806105478339818101604052810190602e9190607b565b603d5f5482604260201b60"
    "201c565b5060a1565b80825d5050565b5f80fd5b5f819050919050565b605d81604d565b81146066575f80fd5b5056"
    "5b5f815190506075816056565b92915050565b5f60208284031215608d57608c6049565b5b5f609884828501606956"
    "5b91505092915050565b610499806100ae5f395ff3fe608060405234801561000f575f80fd5b506004361061003457"
    "5f3560e01c80633bc5de30146100385780636428f3dc14610056575b5f80fd5b610040610074565b60405161004d91"
    "9061015c565b60405180910390f35b61005e610084565b60405161006b919061015c565b60405180910390f35b5f61"
    "007f5f5461012d565b905090565b5f8060405161009290610137565b604051809103905ff0801580156100ab573d5f"
    "803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663c1df0f48306040518263ffffffff"
    "1660e01b81526004016100e791906101b4565b6020604051808303815f875af1158015610103573d5f803e3d5ffd5b"
    "505050506040513d601f19601f8201168201806040525081019061012791906101fb565b91505090565b5f815c9050"
    "919050565b61023d8061022783390190565b5f819050919050565b61015681610144565b82525050565b5f60208201"
    "905061016f5f83018461014d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff8216905091"
    "9050565b5f61019e82610175565b9050919050565b6101ae81610194565b82525050565b5f6020820190506101c75f"
    "8301846101a5565b92915050565b5f80fd5b6101da81610144565b81146101e4575f80fd5b50565b5f815190506101"
    "f5816101d1565b92915050565b5f602082840312156102105761020f6101cd565b5b5f61021d848285016101e7565b"
    "9150509291505056fe6080604052348015600e575f80fd5b506102218061001c5f395ff3fe60806040523480156100"
    "0f575f80fd5b5060043610610029575f3560e01c8063c1df0f481461002d575b5f80fd5b6100476004803603810190"
    "610042919061013a565b61005d565b604051610054919061017d565b60405180910390f35b5f808290505f8173ffff"
    "ffffffffffffffffffffffffffffffffffff16633bc5de306040518163ffffffff1660e01b81526004016020604051"
    "80830381865afa1580156100ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101"
    "906100d091906101c0565b90508092505050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffff"
    "ffff82169050919050565b5f610109826100e0565b9050919050565b610119816100ff565b8114610123575f80fd5b"
    "50565b5f8135905061013481610110565b92915050565b5f6020828403121561014f5761014e6100dc565b5b5f6101"
    "5c84828501610126565b91505092915050565b5f819050919050565b61017781610165565b82525050565b5f602082"
    "0190506101905f83018461016e565b92915050565b61019f81610165565b81146101a9575f80fd5b50565b5f815190"
    "506101ba81610196565b92915050565b5f602082840312156101d5576101d46100dc565b5b5f6101e2848285016101"
    "ac565b9150509291505056fea2646970667358221220b74855b53bcf2b3cc2261d3f57e16507da8b24f81ff5196991"
    "91e34ce025bc8664736f6c63430008190033a26469706673582212201eb1e02998c84b08c3db1bdb2487184ca8357f"
    "1d2739ec65daa47ffe3e89316a64736f6c63430008190033a2646970667358221220bad0e7bec379be9bb4f446b845"
    "050f59959e8bd9da49d83f3c9f669a63e5e51e64736f6c63430008190033";